package com.xoa.dev.crossEmail.dao;

import com.xoa.dev.crossEmail.model.EmailBodyPlusModel;
import com.xoa.dev.crossEmail.model.EmailBodyplus;
import com.xoa.dev.crossEmail.model.EmailBodyplusExample;
import com.xoa.dev.crossEmail.model.EmailBodyplusWithBLOBs;
import java.util.List;
import java.util.Map;

import com.xoa.dao.base.BaseMapper;
import org.apache.ibatis.annotations.Param;

public interface EmailBodyplusMapper extends BaseMapper<EmailBodyPlusModel> {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table email_bodyplus
     *
     * @mbggenerated
     */
    int countByExample(EmailBodyplusExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table email_bodyplus
     *
     * @mbggenerated
     */
    int deleteByExample(EmailBodyplusExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table email_bodyplus
     *
     * @mbggenerated
     */
    int insert(EmailBodyplusWithBLOBs record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table email_bodyplus
     *
     * @mbggenerated
     */
    int insertSelective(EmailBodyplusWithBLOBs record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table email_bodyplus
     *
     * @mbggenerated
     */
    List<EmailBodyplusWithBLOBs> selectByExampleWithBLOBs(EmailBodyplusExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table email_bodyplus
     *
     * @mbggenerated
     */
    List<EmailBodyplus> selectByExample(EmailBodyplusExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table email_bodyplus
     *
     * @mbggenerated
     */
    int updateByExampleSelective(@Param("record") EmailBodyplusWithBLOBs record, @Param("example") EmailBodyplusExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table email_bodyplus
     *
     * @mbggenerated
     */
    int updateByExampleWithBLOBs(@Param("record") EmailBodyplusWithBLOBs record, @Param("example") EmailBodyplusExample example);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table email_bodyplus
     *
     * @mbggenerated
     */
    int updateByExample(@Param("record") EmailBodyplus record, @Param("example") EmailBodyplusExample example);

    public int updateByPrimaryKey(EmailBodyPlusModel record);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-20 上午10:42:43
     * 方法介绍:   根据ID删除草稿箱邮件
     * 参数说明:   @param bodyId
     * @return     void
     */
    public void deleteDrafts(Integer bodyId);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-20 上午10:42:54
     * 方法介绍:   根据ID查询一条邮件
     * 参数说明:   @param maps
     * 参数说明:   @return
     * @return     EmailBodyModel
     */
    public EmailBodyPlusModel queryById(Map<String,Object> maps);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-20 上午10:43:03
     * 方法介绍:   收件箱查询
     * 参数说明:   @param maps
     * 参数说明:   @return
     * @return     List<EmailBodyModel>
     */
    List<EmailBodyPlusModel> selectInbox(Map<String, Object> maps);
    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-20 上午10:43:12
     * 方法介绍:   草稿箱查询
     * 参数说明:   @param maps
     * 参数说明:   @return
     * @return     List<EmailBodyModel>
     */
    List<EmailBodyPlusModel> listDrafts(Map<String, Object> maps);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-20 上午10:43:23
     * 方法介绍:   已发送查询
     * 参数说明:   @param maps
     * 参数说明:   @return
     * @return     List<EmailBodyModel>
     */
    List<EmailBodyPlusModel> listSendEmail(Map<String, Object> maps);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-20 上午10:43:31
     * 方法介绍:   未读
     * 参数说明:   @param maps
     * 参数说明:   @return
     * @return     List<EmailBodyModel>
     */
    List<EmailBodyPlusModel> selectIsRead(Map<String,Object> maps);


    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-20 上午10:43:42
     * 方法介绍:   废纸篓查询
     * 参数说明:   @param maps
     * 参数说明:   @return
     * @return     List<EmailBodyModel>
     */
    List<EmailBodyPlusModel> listWastePaperbasket(Map<String, Object> maps);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-20 上午10:43:51
     * 方法介绍:   多条件分页查询邮箱
     * 参数说明:   @param maps
     * 参数说明:   @return
     *  作废
     * @return     List<EmailBodyModel>
     */
    List<EmailBodyPlusModel> listqueryEmailBody(Map<String, Object> maps);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-21 上午10:07:01
     * 方法介绍:   发件箱删除 变为2
     * 参数说明:   @param emailBodyModel
     * @return     void
     */
    public void updateOutbox(Integer emailId);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-21 上午10:07:39
     * 方法介绍:   发件箱删除 变为4
     * 参数说明:   @param emailBodyModel
     * @return     void
     */
    public void updateOutboxs(Integer emailId);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-21 上午10:39:20
     * 方法介绍:   发件箱为1时删除
     * 参数说明:   @param emailBodyModel
     * @return     void
     */
    public void deleteOutbox(Integer emailId);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-21 上午10:41:01
     * 方法介绍:   收件箱删除 ，变为3
     * 参数说明:   @param emailBodyModel
     * @return     void
     */
    public void updateInbox(Integer emailId);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-21 上午10:41:35
     * 方法介绍:   收件箱删除 ，变为4
     * 参数说明:   @param emailBodyModel
     * @return     void
     */
    public void updateInboxs(Integer emailId);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-21 上午10:42:44
     * 方法介绍:   废纸篓删除，变为1
     * 参数说明:   @param emailBodyModel
     * @return     void
     */
    public void updateRecycle(Integer emailId);

    /**
     *
     * 创建作者:   张勇
     * 创建日期:   2017-4-21 上午10:43:38
     * 方法介绍:   废纸篓删除
     * 参数说明:   @param emailBodyModel
     * @return     void
     */
    public void deleteRecycle(Integer emailId);


    /**
     * 创建作者:   张勇
     * 创建日期:   2017/5/15 16:24
     * 方法介绍:   其他邮件查询
     * 参数说明:
     * @return
     */
    List<EmailBodyPlusModel> selectBoxEmail(Map<String, Object> maps);

    /**
     * 创建作者:   张勇
     * 创建日期:   2017/5/15 16:25
     * 方法介绍:   查询其他邮件文件夹中是否存在邮件
     * 参数说明:
     * @return
     */
    List<EmailBodyPlusModel> selectIsBoxEmail(Map<String, Object> maps);

    /**
     * 创建作者:   张勇
     * 创建日期:   2017/5/19 17:43
     * 方法介绍:   收件箱未读查询
     * 参数说明:
     * @return
     */
    List<EmailBodyPlusModel> selectInboxIsRead(Map<String,Object> maps);

    List<EmailBodyPlusModel> selectInboxIsReadList(Map<String,Object> maps);

    List<EmailBodyPlusModel> selectCount(Map<String, Object> param);

    List<EmailBodyPlusModel> selectListByMoths(@Param("sendTime") String sendTime, @Param("year")String year,@Param("userId") String userId);

    EmailBodyPlusModel queryByBodyId(Map<String, Object> maps);

    List<EmailBodyPlusModel> queryEmailBySubject(String trim);

    List<EmailBodyPlusModel> selExamEmail();

    int updateExamFlag(EmailBodyPlusModel emailBodyModel);

    List<EmailBodyPlusModel> selWordExamEmail();

    int updateWordFlag(EmailBodyPlusModel emailBodyModel);

    public  Integer selectEmail();
}